/*
Christopher Raffaele
02/18/2010
CSC280
Assignement 2 Towers of Hanoi

Tower.h
*/
#pragma once

#include<iostream>
#include"Stack.h"

//specialized stack
//made to enalbe unique initialization and for cout
//purposes
class Tower : public Stack<int>{
public:
	/// <summary>
	/// Creates a tower object filling with decending values beginning at numDisks
	/// representing gradually small disks
	/// </summary>
	/// <param name="numDisks">The number of the disks on the tower.</param>
	explicit Tower(int numDisks);

	/// <summary>
	/// Provides a convinient method for view the contents of the tower
	/// </summary>
	/// <param name="numDisks">The ostream reference.</param>
	/// <param name="aHanoiGame">A Tower object.</param>
	friend std::ostream& operator<<(std::ostream& os, const Tower& aTower);
};